package com.gz.springcloud.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置自己的负载均衡算法
 */
@Configuration
public class RibbonRule {
    //注意这里的gateway自定义负载均衡算法和ribbon+restTemplate不一样
    //这里不需要再主程序上写@RibbonClient(name = "MEMBER_SERVICE_PROVIDER_URL",configuration = RibbonRule.class)

    @Bean
    //配置注入自己的负载均衡算法(默认是轮询算法)
    public IRule MyRibbonRule() {
        //这里返回的是随机算法
        //还有其他的算法如BestAvailableRule、AvailabilityFilteringRule等算法
//        return  new BestAvailableRule();
//        return new AvailabilityFilteringRule();
//        return new RoundRobinRule(); //轮询算法
        //...
        return new RandomRule();
    }
}
